home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 8642 / 8642.xpi / chrome / bablatoolbar.jar / content / bablatoolbar.js next >
Text File  |  2009-10-29  |  8KB  |  184 lines

  1. // The babla_Search() function will perform a Google search for us. The two
  2. // parameters that get passed in are the event that triggered this function
  3. // call, and the type of search to perform.
  4. ////////////////////////////////////////////////////////////////////////////////
  5. function babla_Search(event, type)
  6. {
  7. // This variable will hold the URL we will browse to
  8.  var URL = "";
  9.  
  10. // This variable will tell us whether our search box is empty or not
  11.  var isEmpty = false;
  12.  
  13. // Get a handle to our search terms box (the <menulist> element)
  14.  var searchTermsBox = document.getElementById("babla-SearchTerms");
  15.  var searchGoogleTermsBox = document.getElementById("google-SearchTerms");
  16.  var searchWikiTermsBox = document.getElementById("wiki-SearchTerms");
  17.  
  18.     
  19. // Get the value in the search terms box, trimming whitespace as necessary
  20. // See the babla_TrimString() function farther down in this file for details
  21. // on how it works.
  22.  var searchbablaTerms = babla_TrimString(searchTermsBox.value);
  23.  var searchGoogleTerms = babla_TrimString(searchGoogleTermsBox.value);
  24.  var searchWikiTerms = babla_TrimString(searchWikiTermsBox.value);
  25.  
  26.  if(searchbablaTerms.length == 0) // Is the search terms box empty?
  27.   isEmpty = true;         // If so, set the isEmpty flag to true
  28.  else                        // If not, convert the terms to a URL-safe string
  29.   searchbablaTerms = babla_ConvertTermsToURI(searchbablaTerms);
  30.  
  31. // Now switch on whatever the incoming type value is
  32. // If the search box is empty, we simply redirect the user to the appropriate
  33. // place at the Google website. Otherwise, we search for whatever they entered.
  34.  switch(type)
  35.  {
  36.   // Build up the URL for a web search
  37.   case "babla":
  38.    var ddl = document.getElementById("bablaLanguage").value;
  39.      var dictionary = document.getElementById("dictionary").value;
  40.   default:
  41.    var sitelang = document.getElementById("sitelang").value;     
  42.    if(isEmpty) { URL = "http://" +sitelang+ ".bab.la/"; }
  43.    else        { URL = "http://" +sitelang+ ".bab.la/" +dictionary+ "/"+ddl+ "/" + searchbablaTerms + ".html";}
  44.   break;
  45. // Build up the URL for a wiki search
  46.   case "google":
  47.    googleUrl = document.getElementById("googleUrl").value;
  48.    URL = "http://" +googleUrl+ "/search?q=" + searchGoogleTerms; 
  49.   break;
  50. // Build up the URL for a wiki search
  51.   case "wiki":
  52.    var wikilang = document.getElementById("wikilang").value;
  53.    URL = "http://" +wikilang+ ".wikipedia.org/wiki/Special:Search?search=" + searchWikiTerms;
  54.   break;
  55.  }
  56.     
  57. // Load the URL in the browser window using the babla_LoadURL function
  58.  babla_LoadURL(URL);
  59. }
  60.  
  61. ////////////////////////////////////////////////////////////////////////////////
  62. // The babla_TrimString() function will trim all leading and trailing whitespace
  63. // from the incoming string, and convert all runs of more than one whitespace
  64. // character into a single space. The altered string gets returned.
  65. ////////////////////////////////////////////////////////////////////////////////
  66. function babla_TrimString(string)
  67. {
  68. // If the incoming string is invalid, or nothing was passed in, return empty
  69.  if (!string)
  70.   return "";
  71.  
  72.  string = string.replace(/^\s+/, ''); // Remove leading whitespace
  73.  string = string.replace(/\s+$/, ''); // Remove trailing whitespace
  74.  
  75. // Replace all whitespace runs with a single space
  76.  string = string.replace(/\s+/g, ' ');
  77.  
  78.  return string; // Return the altered value
  79. }
  80.  
  81. ////////////////////////////////////////////////////////////////////////////////
  82. // The babla_ConvertTermsToURI() function converts an incoming string of search
  83. // terms to a safe value for passing into a URL.
  84. ////////////////////////////////////////////////////////////////////////////////
  85. function babla_ConvertTermsToURI(terms)
  86. {
  87. // Create an array to hold each search term
  88.  var termArray = new Array();
  89.  
  90. // Split up the search term string based on the space character
  91.  termArray = terms.split(" ");
  92.  
  93. // Create a variable to hold our resulting URI-safe value
  94.  var result = "";
  95.  
  96. // Loop through the search terms
  97.  for(var i=0; i<termArray.length; i++) {
  98.  // All search terms (after the first one) are to be separated with a '+'
  99.   if(i > 0)
  100.   result += "+";
  101.  
  102.  // Encode each search term, using the built-in Firefox function
  103.  // encodeURIComponent().
  104.   result += encodeURIComponent(termArray[i]);
  105.  }
  106.  return result; // Return the result
  107. }
  108.  
  109. ////////////////////////////////////////////////////////////////////////////////
  110. // The babla_LoadURL() function loads the specified URL in the browser.
  111. ////////////////////////////////////////////////////////////////////////////////
  112. function babla_LoadURL(url)
  113. {
  114. // Set the browser window's location to the incoming URL
  115.  //window._content.document.location = url;
  116.  
  117. //Open a new tab to load the url
  118.  getBrowser().selectedTab = getBrowser().addTab(url);
  119.  
  120. // Make sure that we get the focus
  121. // window.content.focus();
  122. }
  123.  
  124. ////////////////////////////////////////////////////////////////////////////////
  125. // The babla_KeyHandler() function checks to see if the key that was pressed
  126. // is the [Enter] key. If it is, a web search is performed.
  127. ////////////////////////////////////////////////////////////////////////////////
  128. /*function babla_KeyHandler(event)
  129. {
  130. // Was the key that was pressed [ENTER]? If so, perform a web search.
  131.  if(event.keyCode == event.DOM_VK_RETURN)
  132.  babla_Search(event, 'web');
  133. }
  134.  
  135. ****/
  136. function babla_KeyHandler(event, type1)
  137. {
  138. // Was the key that was pressed [ENTER]? If so, perform a web search.
  139.  if(event.keyCode == event.DOM_VK_RETURN)
  140.   switch(type1) {
  141.   // Build up the URL for a web search
  142.    case "babla":
  143.    default:
  144.     babla_Search(event, 'babla');
  145.     break;
  146.   // Build up the URL for a wiki search
  147.    case "google":
  148.     babla_Search(event, 'google');
  149.     break;
  150. // Build up the URL for a wiki search
  151.    case "wiki":
  152.     babla_Search(event, 'wiki');
  153.     break;
  154.   }
  155. }
  156.  
  157. ////////////////////////////////////////////////////////////////////////////////
  158. // The babla_loadPref() function checks for settings of the dictionary selection
  159. ////////////////////////////////////////////////////////////////////////////////
  160. function babla_loadPref() {
  161.  const babla_PrefService = Components.classes["@mozilla.org/preferences-service;1"]. getService(Components.interfaces.nsIPrefService);
  162.  const babla_Branch = babla_PrefService.getBranch("bablatoolbar.");
  163.  if (babla_Branch.prefHasUserValue("udict.selected")) {
  164.      var selDict = babla_Branch.getCharPref("udict.selected");
  165.      document.getElementById('bablaLanguage').selectedIndex = selDict;
  166.  }
  167.  else {
  168.      babla_Branch.setUnicharPref("udict.selected", document.getElementById("bablaLanguage").value);
  169.  }
  170. }
  171. window.addEventListener("load", babla_loadPref, false);
  172.  
  173. ////////////////////////////////////////////////////////////////////////////////
  174. // The babla_savePref() function sets the dictionary selection to user prefs
  175. ////////////////////////////////////////////////////////////////////////////////
  176. function babla_savePref() {
  177.  const babla_PrefService = Components.classes["@mozilla.org/preferences-service;1"]. getService(Components.interfaces.nsIPrefService);
  178.  const babla_Branch = babla_PrefService.getBranch("bablatoolbar.");
  179. // babla_Branch.setCharPref("udict.selected", document.getElementById("bablaLanguage").value);
  180.  var selObj = document.getElementById("bablaLanguage");
  181.  var selIndex = selObj.selectedIndex;
  182.  babla_Branch.setCharPref("udict.selected", selIndex);
  183. }
  184.